In the age of multimedia which integrally addresses audio, video and other contents, existing information media, i.e., newspaper, magazine, television, radio, telephone and other means through which information is conveyed to people, have recently come to be included in the scope of multimedia. Generally, multimedia refers to something that is represented by associating not only characters, but also graphics, voices, and especially pictures and the like together, but in order to include the aforementioned existing information media in the scope of multimedia, it appears as a prerequisite to represent such information in digital form.
However, when calculating the amount of information contained in each of the aforementioned information media as the amount of digital information, while the amount of information per character is 1˜2 bytes in the case of characters, the amount of information to be required is 64 Kbits or over per second in the case of voices (telephone quality), and 100 Mbits or over per second in the case of moving pictures (current television reception quality), and it is not realistic for the aforementioned information media to handle such an enormous amount of information as it is in digital form. For example, although video phones are already in the actual use by using Integrated Services Digital Network (ISDN) which offers a transmission speed of 64 Kbps˜1.5 Mbps, it is not practical to transmit videos of televisions and cameras directly through ISDN.
Against this backdrop, information compression techniques have become required, and moving picture compression techniques compliant with H.261 and H.263 standards recommended by ITU-T (International Telecommunication Union-Telecommunication Standardization Sector) are employed for video phones, for example. Moreover, according to information compression techniques compliant with the MPEG-1 standard, it is possible to store picture information in an ordinary music CD (compact disc) together with sound information.
Here, MPEG (Moving Picture Experts Group) is an international standard on digital compression of moving picture signals, and MPEG-1 is a standard for compressing television signal information approximately into one hundredth so that moving picture signals can be transmitted at a rate of 1.5 Mbps. Furthermore, since transmission speed within the scope of the MPEG-1 standard is limited primarily to about 1.5 Mbps, MPEG-2, which was standardized with a view to satisfy requirements for further improved picture quality, allows data transmission equivalent in quality to television broadcasting through which moving picture signals are transmitted at a rate of 2˜15 Mbps.
Furthermore, MPEG-4 which provides a higher compression ratio has been standardized by the working group (ISO/IEC JTC1/SC29/WG11) which was engaged in the standardization of MPEG-1 and MPEG-2. Not only is it possible to perform a highly efficient coding at a low bit rate, MPEG-4 employs a powerful technique for error resilience which lessens the degradation of picture quality to be judged from a subjective standpoint, even when a transmission channel error occurs.
Meanwhile, in existing picture coding such as H.263 and MPEG-4, a variety of signal conversion/compression processing are performed for a picture signal so as to covert such picture signal into various kinds of values, and then either fixed length coding or variable length coding is performed in accordance with code tables which are appropriately selected according to the meaning of each converted value. Generally, when coding is performed, a compression ratio is increased by allocating a code word of a short code length to a code occurring with a high frequency, and by allocating a code word of a long code length to a code occurring with a low frequency. Since values converted through signal conversion/compression processing are different in their occurrence frequency depending on the meanings such values indicate, a compression ratio of picture coding is increased by making an appropriate selection of code tables which describe code words corresponding to such values. In conventional picture decoding performed in a pair with conventional picture coding, a proper decoding is performed by using the same code tables as used in picture coding.
FIG. 1 is a functional block diagram showing units relating to coding functionality of an existing picture coding apparatus 500. As illustrated in FIG. 1, the picture coding apparatus 500 is comprised of a header/frame coding unit 501, a syntax analyzing unit 502, a fixed length/variable length coding unit 503, and a code table selecting unit 504.
The header/frame coding unit 501 acquires a moving picture signal Vin, and generates header information which is information common to an entire picture and moving picture signal information of each frame on the basis of such moving picture signal Vin.
More specifically, the header/frame coding unit 501 generates, as the header information, a header parameter (inf_H, not illustrated in the diagram) which is information common to the header, a header code value (InfVal_H) which is the header parameter converted into a value, and a header syntax structure signal (Stx_H) indicating the value meaning of the header code value, outputs such header syntax structure signal (Stx_H) to the syntax analyzing unit 502, and outputs the header code value (InfVal_H) to the fixed length/variable length coding unit 503. Moreover, the header/frame coding unit 501 generates, as picture signal information of each frame, a frame code value (InfVal_F) which is a value to be obtained as a result of coding the picture signal of each frame, and a frame syntax structure signal (Stx_F) indicating the value meaning of the frame code value, outputs such frame syntax structure signal (Stx_F) to the syntax analyzing unit 502, and outputs the frame code value (InfVal_F) to the fixed length/variable length coding unit 503. Note that in FIG. 1, the header code value (InfVal_H) and the frame code value (InfVal_F) are collectively described as “InfVal_X”, and the header syntax structure signal (Stx_H) and the frame syntax structure signal (Stx_F) are collectively described as “Stx_X”.
The syntax analyzing unit 502 generates a code table selection signal (Sel_H or Sel_F) on the basis of either the header syntax structure signal (Stx_H) or the frame syntax structure signal (Stx_F), and outputs it to the code table selecting unit 504. In other words, the syntax analyzing unit 502 generates a code table selection signal (e.g. Sel_H1˜Sel_H3, or Sel_F1˜Sel_F3) for selecting an appropriate code table from a plurality of code tables on the basis of a value indicated by a header syntax structure signal or a frame syntax structure signal. Note that in FIG. 1, the code table selection signals (Sel_H and Sel_F) are described collectively as “Sel_X”.
The fixed length/variable length coding unit 503 constructs a picture coded signal (Str) on the basis of the header code value (InfVal_H) and the frame code value (InfVal_F). To be more specific, the header code value (InfVal_H) is decomposed into unit header code values (Val_H: e.g. Val_H1˜Val_H3) which are basic units of coding. Then, code tables are selected by the code table selecting unit 504 based on these unit header code values so as to obtain header code words (Code_H), and a header stream (Str_H) is constructed by combining the header code value (InfVal_H) and the header code words (Code_H) together. Furthermore, the fixed length/variable length coding unit 503 decomposes the frame code value (InfVal_F) into unit frame code values (Val_F: e.g. Val_F1˜Val_F3) which are basic units of coding, selects code tables in the code table selecting unit 504 based on these unit frame code values so as to obtain frame code words (Code_F), and constructs a frame stream (Str_F) by combining the frame code value (InfVal_F) and the frame code words (Code_F) together. Furthermore, the fixed length/variable length coding unit 503 multiplexes the header stream (Str_H) and the frame stream (Str_F) so as to construct a picture coded signal (Str). Note that in FIG. 1, the unit header code values (Val_H) and the unit frame code values (Val_F) are collectively described as “Val_X”, and the header code words (Code_H) and the frame code words (Code_F) are collectively described as “Code_X”.
As described above, the code table selecting unit 504 selects code tables on the basis of the code table selection signal Sel_X and the unit header code values or the unit frame code values, generates header code words or frame code words according to such selected code tables, and outputs them to the fixed length/variable length coding unit 503.
FIG. 2 is a diagram showing a stream structure of a conventional picture coded signal. The picture coded signal Str is comprised of frame data FrmData in which picture signal information of each frame making up the picture is stored and a sequence header SeqHdr which is information common to each frame. Pieces of information making up the sequence header SeqHdr are a synchronizing signal SeqSync intended for synchronization between transmission and receiving, a picture size Size of each frame and a frame rate FrmRate. Meanwhile, the frame data FrmData is made up of macroblock data MB specific to macroblocks making up a frame, and a frame header FrmHdr which is data common to each macroblock. The frame header FrmHdr is made up of a synchronizing signal FrmSync intended for synchronization among frames and a frame number FrmNo that indicates a time at which the frame is displayed. Moreover, macroblock data MB is made up of a coding flag Cod indicating whether such macroblock is coded or not, a macroblock coding mode Mode indicating a coding method to be used for each macroblock, and when coding is performed added with motion compensation, motion information MV indicating the amount of such motion, and pixel value data Coef which is coded data of each pixel.
FIG. 3 is a functional block diagram showing units relating to decoding functionality of an existing picture decoding apparatus 600. In this diagram, the same numbers are assigned to configurations that offer the same functions and the signals that have the same meanings as those in the functional diagram for the existing picture coding apparatus 500 illustrated in FIG. 1, and explanations thereof are omitted.
A fixed length/variable length decoding unit 601 splits the picture coded signal Str into the header stream (Str_H) and the frame stream (Str_F). Furthermore, the fixed length/variable length decoding unit 601 decomposes the header stream (Str_H) into header code words Code_H (e.g. Code_H1˜Code_H3) which are basic units of decoding so as to obtain, in a code table selecting unit 602, the unit header code values (Val_H) corresponding to the header code words (Code_H), and constructs the header code value (InfVal_H) by combining them. Moreover, the fixed length/variable length decoding unit 601, as in the case of the above header stream (Str_H), decomposes the frame stream (Str_F) into frame code words Code_F (e.g. Code_F1˜Code_F3) which are basic units of decoding so as to obtain, in the code table selecting unit 602, the unit frame code values Val_F corresponding to the frame code words Code_F, and constructs the frame code value (InfVal_F) by combining them.
A header/frame decoding unit 603 decodes the header code value (InfVal_H) so as to decompress the header information, and outputs the header parameter (inf_H, not illustrated in the diagram) which is information common to the header and the header syntax structure signal (Stx_H) indicating the characteristic of the following header code value. The header syntax structure signal (Stx_H) here is information indicating the meaning of the next code word which is necessary for decoding such next code word in the header. Furthermore, the header/frame decoding unit 603, as in the case of the above header code value (InfVal_H), decompresses the frame code value InfVal_F of each frame, and outputs the frame syntax structure signal Stx_F and a decoded moving picture signal Vout.
A syntax analyzing unit 604 outputs a code table selection signal (Sel_H) for switching an output of the code table selecting unit 602 according to the header syntax structure signal (Stx_H) in order to decode the next code word in the header. In other words, the syntax analyzing unit 604 generates the code table selection signal (Sel_H) for switching to an appropriate code table of a plurality of code tables according to a value indicated by the header syntax structure signal (Stx_H). Furthermore, the syntax analyzing unit 604, as in the case of the above header syntax structure signal (Stx_H), outputs a code table selection signal (Sel_F) according to the frame syntax structure signal (Stx_F).
The frame syntax structure signal Stx_F here is information indicating the characteristic of the next code word which is necessary for decoding such next code word. The syntax analyzing unit 604 outputs the code table selection signal Sel_F for switching an output of the code table selecting unit according to the frame syntax structure signal Stx_F in order to decode the next code word. In other words, the syntax analyzing unit 604 generates the code table selection signal Sel_F for switching to an appropriate code table of a plurality of code tables according to a value indicated by the frame syntax structure signal Stx_F. Note that FIG. 3 also uses “InfVal_X”, Stx_X″, “Sel_X”, “Val_X”, “Code_X” as generic names common to signals concerning the header information and picture signal information of each frame, as in the case of FIG. 1 described above.
Note that the above-described header streams Str_H illustrated in FIG. 1 and FIG. 3 correspond to the sequence header SeqHdr or the combination of the sequence header SeqHdr and the frame header FrmHdr, and the frame streams Str_F correspond respectively to the frame data FrmData or macroblock data MB illustrated in the stream structure of the conventional picture coded signal in FIG. 2.
Meanwhile, such existing picture coding apparatus and existing picture decoding apparatus described above require a plurality of code tables in order to increase a compression ratio, and there occurs a problem that
(1) processing for switching code tables becomes complicated. While this does not pose a particular problem when coding/decoding is performed by a high-performance/large capacity computer, it is difficult to realize this in a mobile terminal and the like with a small memory/low-computing power. In particular, since code tables are frequently switched according to the syntax structure signal (Stx_X) in the code table selecting units 504 and 602 of the existing picture coding apparatus and the existing picture decoding apparatus, processing for switching code tables can be complicated.
Meanwhile, there are two types of variable length coding, which are Huffman coding in which coding is performed using a code table which is relatively easy to decode, and arithmetic coding which involves complex coding/decoding processing but which offers highly-efficient compression. Arithmetic coding is a kind of variable length coding, and a probability used for coding/decoding in arithmetic coding corresponds to a code table. However, when Huffman coding and arithmetic coding co-reside in the same stream in a complicated manner, there is a problem that it is difficult for the aforementioned mobile terminal and the like to realize this since processing for switching between Huffman coding and arithmetic coding in the course of coding and decoding is highly complicated.
The present invention has been conceived in order to solve the above problem, and it is an object of the present invention to provide picture coding methods and picture decoding methods that allow mobile terminals and the like with small memory/low-computing power to carry out data compression equivalent to conventional data compression.